﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Boa.HD.AccesoDatos.Contratos;
using Didsoft.DataAccess.NHibernate;
using Didsoft.DataAccess.NHibernate.Extensions;

namespace Boa.HD.AccesoDatos.Contexto
{
    public class ReporteAccesoDatos : DataAccessBase<object>, IReporteAccesoDatos
    {
        public List<Entidades.DTO.Reportes.DtoRolUsuario> ListarRolesPorFiltro(string filtro)
        {
            string sql = @"declare @NombrePersona varchar(50) = :filtro

                            select 

                              NombreCompleto = p.Nombre+' '+p.ApellidoMaterno+' '+p.ApellidoMaterno,
                              NombreRol = r.Nombre,
                              NombreUsuario = u.Nombre,
                              p.Genero,
                              p.FechaNacimiento
  


                             from DUA_Rol r
                            inner join DUA_Usuario u on r.RolId = u.RolId
                            inner join DUA_Persona p on p.PersonaId = u.PersonaId
                            where p.Nombre like @NombrePersona 
		                            OR p.ApellidoPaterno like @NombrePersona 
		                            OR p.ApellidoMaterno like @NombrePersona
		
                            order by NombreCompleto";

            var query = Session.CreateSQLQuery(sql);
            query.SetAnsiString("filtro", filtro+"%");
            return query.ListBeanTransformer<Entidades.DTO.Reportes.DtoRolUsuario>().ToList();


        }
    }
}
